home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / tcsh / dist / mi.wait.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-21  |  1.4 KB  |  45 lines

  1. /* The <sys/wait.h> header contains macros related to wait(). The value
  2.  * returned by wait() and waitpid() depends on whether the process 
  3.  * terminated by an exit() call, was killed by a signal, or was stopped
  4.  * due to job control, as follows:
  5.  *
  6.  *                 High byte   Low byte
  7.  *                +---------------------+
  8.  *    exit(status)        |  status  |    0     |
  9.  *                +---------------------+
  10.  *      killed by signal    |    0     |  signal  |
  11.  *                +---------------------+
  12.  *    stopped (job control)    |  signal  |   0177   |
  13.  *                +---------------------+
  14.  */
  15.  
  16. #ifndef _WAIT_H
  17. #define _WAIT_H
  18.  
  19. #ifndef _TYPES_H        /* not quite right */
  20. #include <sys/types.h>
  21. #endif
  22.  
  23. #define __LOW(v)    ((v) & 0377)
  24. #define __HIGH(v)    (((v) >> 8) & 0377)
  25.  
  26. #define WNOHANG         1    /* do not wait for child to exit */
  27. #define WUNTRACED       2    /* for job control; not implemented */
  28.  
  29. #define WIFEXITED(s)    (__LOW(s) == 0)            /* normal exit */
  30. #define WEXITSTATUS(s)    (__HIGH(s))                /* exit status */
  31. #define WTERMSIG(s)    (__LOW(s) & 0177)            /* sig value */
  32. #define WIFSIGNALED(s)    (((unsigned int)(s)-1 & 0xFFFF) < 0xFF) /* signaled */
  33. #define WIFSTOPPED(s)    (__LOW(s) == 0177)            /* stopped */
  34. #define WSTOPSIG(s)    (__HIGH(s) & 0377)            /* stop signal */
  35.  
  36. /* Function Prototypes. */
  37. #ifndef _ANSI_H
  38. #include <ansi.h>
  39. #endif
  40.  
  41. _PROTOTYPE( pid_t wait, (int *_stat_loc)                      );
  42. _PROTOTYPE( pid_t waitpid, (pid_t _pid, int *_stat_loc, int _options)       );
  43.  
  44. #endif /* _WAIT_H */
  45.